﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Security.Cryptography;
using System.Text;
using System.Windows.Forms;
using BLL;
using DAL;
using DevComponents.DotNetBar;

namespace GUI
{
    public partial class frmDoiPass : DevComponents.DotNetBar.Office2007Form
    {
        private BoThanhVien _mem;
        private BOLog _log;
        public frmDoiPass()
        {
            InitializeComponent();
            _mem = new BoThanhVien();
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            MessageBoxEx.EnableGlass = false;
            string tenThanhVien = txtTenThanhVien.Text;
            string oldPass = txtOldPass.Text;
            string enOldPass = GetMD5(oldPass);
            string newPass = txtNewPass.Text;
            string enNewPass = GetMD5(newPass);
            string retype = txtRetype.Text;
            string enRetype = GetMD5(retype);
            if (enRetype.Equals(enNewPass))
            {
                int result = _mem.ChangePass(tenThanhVien, enOldPass, enNewPass);
                if (result > 0)
                    MessageBoxEx.Show(@"Đổi mật khẩu thành công !!!");
                else
                    MessageBoxEx.Show(@"Đổi mật khẩu thất bại !!!");
            }
            else
                MessageBoxEx.Show(@"Kiểm tra lại mật khẩu mới và nhập lại mật khẩu mới 1 cách chính xác !!!");
            _log = new BOLog();
            _log.AddLog(Session.member.TenThanhVien, " đổi mật khẩu", DateTime.Now, "");
            Dispose();
        }

        private void frmDoiPass_Load(object sender, EventArgs e)
        {
            txtTenThanhVien.Text = Session.member.TenThanhVien;
        }

        private void txtRetype_TextChanged(object sender, EventArgs e)
        {
            AcceptButton = btnOK;
        }

        public string GetMD5(string password)
        {
            string str_md5 = "";
            byte[] mang = System.Text.Encoding.UTF8.GetBytes(password);

            MD5CryptoServiceProvider my_md5 = new MD5CryptoServiceProvider();
            mang = my_md5.ComputeHash(mang);

            foreach (byte b in mang)
            {
                str_md5 += b.ToString();
            }

            return str_md5;
        }

        private void frmDoiPass_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult dr;
            MessageBoxEx.EnableGlass = false;
            dr = MessageBoxEx.Show("Bạn có thật sự muốn thoát ?", "Thông báo", MessageBoxButtons.YesNo,
                                   MessageBoxIcon.Question);
            if (dr == DialogResult.No)
            {
                e.Cancel = true;
            }
        }
    }
}